package org.future.persistent.dao;

import java.util.List;
import java.util.Map;

/**
 * 基本的增删查改方法
 * @author dycc
 *
 */
public interface BaseCURD<T> {
    /**
     * 增加一条记录
     * @param bean
     * @return
     */
    public T insert(T bean);
    /**
     * 更新一条记录
     * @param bean
     * @return
     */
    public T update(T bean);
    /**
     * 查询一条记录
     * @param key
     * @return
     */
    public T detail(Object key);
    /**
     * 删除一条记录
     * @param key
     * @return
     */
    public int delete(Object key);
    /**
     * 批量增加记录
     * @param beanList
     */
    public void batchInsert(final List<T> beanList);
    /**
     * 批量更新记录
     * @param beanList
     */
    public void batchUpdate(final List<T> beanList);
    /**
     * 不翻页查询
     * @param map
     * @return
     */
    public List<T> queryNoPage(Map<String, String> map);
    /**
     * 更新一条记录[包含大字段]
     * @param bean
     * @return
     */
    public T updateWithFile(T bean);
    /**
     * 批量更新记录[包含大字段]
     * @param beanList
     */
    public void batchUpdateWithFile(final List<T> beanList);
}
